package com.xzq.erp.service;

import com.xzq.erp.domain.dto.LoginDTO;
import com.xzq.erp.domain.dto.RegisterDTO;
import com.xzq.erp.domain.vo.LoginVO;
import com.xzq.erp.domain.vo.WxRefreshVO;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;

/**
 * 认证服务接口
 */
public interface IAuthService {

    /**
     * 用户登录
     * @param loginDTO 登录参数
     * @return 登录结果
     */
    LoginVO login(LoginDTO loginDTO);

    /**
     * 用户注册
     * @param registerDTO 注册参数
     * @return 注册成功返回用户ID
     */
    Integer register(RegisterDTO registerDTO);

    /**
     * 刷新令牌
     * @param refreshToken
     * @return
     */
    String refreshToken(String refreshToken);

    /**
     * 登出
     */
    void logout(HttpServletResponse response);

    /**
     * 微信用户登录
     * @param loginDTO
     * @return
     */
    LoginVO WxLogin(@Valid LoginDTO loginDTO);

    /**
     * 微信刷新令牌
     * @param refreshToken
     * @return
     */
    WxRefreshVO wxRefreshToken(String refreshToken);
}